AWS検証環境に、不明なEC2インスタンスがあったので調査して解決した話【CloudTrail|Kotyの新卒研修レポート】

AWS検証環境に、不明なEC2インスタンスがあったので調査して解決した話【CloudTrail|Kotyの新卒研修レポート】

検証用AWSコンソールでEC2を操作していると、名前がついていない不明なインスタンスを見つけました。原因をCloudTrailで調査して、解決した話です。

こんにちは!Koty-Mousa 矢坂幸太郎です!
今回の新卒研修レポートは、普段の研修・業務の中で発生した件についての記事となります。

私の所属する アノテーション株式会社 育成推進チーム では、24新卒メンバー用にAWSの検証環境を用意しています。一つの環境に、各社員個別のIAMロールで利用する方式です。

(検証環境の運用方法は、チームによって異なっています。社員ごとに個別のIAMユーザーが割り振られているチームもあります。)

そのため、他メンバーの作成したリソースも他メンバーから見えています。

上記の仕組みのため、育成推進チームでは、リソース作成時には、リソース名に個人名を入れて、「誰が作成したのか」を簡単に判別できるようにするルールになっています。
例えば、私がEC2を紹介するブログでは、『Koty-linux-DevIO』と名付けました。これにより、他メンバーが私(Koty)が作成したインスタンスであると判別できます。

また、使い終わったリソースは停止・終了します。基本的にAWSは使用時間中に課金されるため、不要な課金を防ぐためです。

今回は、私が検証環境での作業中に遭遇した事象について、お話しします。

名無しのEC2インスタンス!?

ある日、AWSコンソールでEC2を操作していると、名前がついていないインスタンスが数日前から起動していることを発見しました。少し調べると、VPC・セキュリティグループ・複数のサブネット・キーペア・AMI・インスタンスタイプなど、全て初期設定のまま起動されていました。

スクリーンショット 2024-09-10 15.50.18 2-3
Koty-linux-DevIO の1つ上のインスタンス 名前がつけられていない

この時点で...

  • 全てが初期設定、名前・タグも未設定または「my-ec2」等から変更されておらず、不便な状態のままのため、検証に使用中とは考えにくい。
  • 起動してから数日経っている、起動したことに気がついていない?
  • 1つのインスタンスに複数のサブネットなど、単純なEC2検証用としては過剰である。

と考えたため、

→何らかの原因で意図せず起動した?
と仮定しました。

連絡...連絡!

「ほう・れん・そう」が大事とはよく言いますが、このようなトラブルの際には特に重要です。

かつて、PCを間違って初期化してしまった時、ブログにこのように書きました。
今回も、育成推進チーム 24新卒メンバーにSlackで連絡しました。

スクリーンショット 2024-09-11 16.55.44

しかし、誰も作成した覚えがなく、原因がわからない状態でした。
そこで、他メンバーから「CloudTrail」にて調査できるのでは?とのフィードバックを受けました。

AWS CloudTrail

AWS CloudTrailは、AWSアカウント内における大部分のAPI呼び出しとアクションを記録するサービスです。AWSインフラ全体にわたる操作の包括的な履歴を確認することができます。 これには、AWSマネジメントコンソール、AWS CLI、AWS SDKs、および他のAWSサービスを通じて行われたアクションが含まれます。各イベントやAPI呼び出しに関する詳細な情報(誰が、何を、いつ、どこから行ったか)が記録され、保存されます。デフォルトでは90日間保存されます。

本機能は、不正アクセスの検出、セキュリティインシデントの調査、コンプライアンス要件の満たしなどに活用できます。また、CloudTrailのログを分析することで、AWSリソースの使用パターンを理解し、最適化を行うことも可能です。AWS Organizationsとの統合で、組織全体の監査機能を果たすこともできます。

CloudTrailについて詳しくは、下記記事もご覧ください。
https://dev.classmethod.jp/articles/introduction-2024-aws-cloudtrail/

調査!

EC2インスタンスの起動時刻は EC2コンソールに表示されています。
それを元に、CloudTrailで時刻を条件に検索し、RunInstancesイベントを発見しました。
ログをよく調べたところ、下記の記載を確認しました。

"eventTime": "2024-09-02T06:45:55Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "RunInstances",
"awsRegion": "ap-northeast-1",

"userName": "社員アカウント名",
"userAgent": "aws-cli...",

社員アカウント名と、これを実行した時間が確認できました。

本人に、Slackで9月2日15時45分ごろ(JST・日本時間)にCLIからEC2インスタンスが起動されたようであると伝えました。確認したところ、はっきりとは覚えていないものの、この時間帯にCloudShellを使用した覚えがあるとのことでした。ただ、EC2インスタンスを意図して起動したのではないそうで、CLI操作中に何らかの理由で起動したものと思われます。

(私はAWS CLIを まだ使用したことがないので、それについても学ぼうと思います。)

EC2インスタンスが起動したままなので、インスタンスを終了(Delete / Terminate)してもらい、本件は解決としました。

最初にお伝えしたように、起動したインスタンスは不要になったら終了することになっているため、それを再確認しました。

結論

今回は、

  • 不審なEC2インスタンスを発見
  • チームに共有
  • 証跡を確認したところ、社員による操作を確認
  • インスタンス終了対応を行う
  • 本人に確認、なんとなく操作の覚えがある
  • 不正アクセス等ではないと判断
  • 起動したインスタンスは不要になったら終了することを再確認

という形で、不明なEC2インスタンスに対する対応を行いました。
今回の対応は、社内の方々から良い対応であったとの言葉をいただきました。

今回は該当しませんが、不正アクセス等による可能性もありました。早期の発見・共有により被害を小さくできることもあります。

今後も、何か気になることがあれば共有・報告することを徹底したいと思います。

アノテーション株式会社のKoty-Mousa 矢坂幸太郎がお伝えしました。


The avatar, logo and name of "Koty-Mousa 矢坂幸太郎" and "Clamerus, dev. by Koty-Mousa" (include inconsistent/abbreviation spelling) are owned and copyrighted by Koty-Mousa (individually).

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.